function swap(arr, src, dest)
{
	if (src != dest)
	{
		var _temp = arr[src];
		arr[src] = arr[dest];
		arr[dest] = _temp;
	}
}

// 快速排序
function quickSort(array, attr, order)
{
	// var array = [8,4,6,2,7,9,3,5,74,5];
	// var array =
	// [0,1,2,44,4,324,5,65,6,6,34,4,5,6,2,43,5,6,62,43,5,1,4,51,56,76,7,7,2,1,45,4,6,7];
	var i = 0;
	var j = array.length - 1;
	var Sort = function(i, j)
	{
		// 结束条件
		if (i == j)
		{
			return;
		}

		var key = array[i];
		var stepi = i; // 记录开始位置
		var stepj = j; // 记录结束位置

		while (j > i)
		{
			// j <<-------------- 向前查找
			if(eval("array[j][attr]" + order + "= key[attr]"))
//			if (array[j][attr] >= key[attr])
			{
				j--;
			}
			else
			{
				array[i] = array[j]
				// i++ ------------>>向后查找
				while (j > ++i)
				{
					if(eval("array[i][attr]" + order + " key[attr]"))
//					if (array[i][attr] > key[attr])
					{
						array[j] = array[i];
						break;
					}
				}
			}
		}

		// 如果第一个取出的 key 是最小的数
		if (stepi == i)
		{
			Sort(++i, stepj);
			return;
		}

		// 最后一个空位留给 key
		array[i] = key;

		// 递归
		Sort(stepi, i);
		Sort(j, stepj);
	}

	Sort(i, j);

	return array;
}
